package com.sjb.sixteen_journey_backend.controller;


import com.sjb.sixteen_journey_backend.common.R;
import com.sjb.sixteen_journey_backend.entity.ComeFriend;
import com.sjb.sixteen_journey_backend.entity.dto.ComeFriendDto;
import com.sjb.sixteen_journey_backend.service.IComeFriendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 约伴表
 *
 * @author jcz
 * @since 2024-08-18
 */
@RestController
@RequestMapping("/come-friend")
public class ComeFriendController {

    @Autowired
    private IComeFriendService comeFriendService;

    /**
     * 发布一篇我的约伴
     * @param comeFriend
     * @return
     */
    @PostMapping("/addMyFriendTable")
    public R<ComeFriend> addMyFriendTable(@RequestBody ComeFriend comeFriend) {
        return comeFriendService.addMyFriendTable(comeFriend);
    }

    /**
     * 修改我的约伴
     * @param comeFriend
     * @return
     */
    @PatchMapping("/changeMyFriendTable")
    public R<ComeFriend> changeMyFriendTable(@RequestBody ComeFriend comeFriend) {
        return comeFriendService.changeMyFriendTable(comeFriend);
    }

    /**
     * 删除我的约伴
     * @param id 约伴id
     * @return
     */
    @DeleteMapping("/deleteMyFriendTable/{id}")
    public R deleteMyFriendTable(@PathVariable("id") Integer id) {
        return comeFriendService.deleteMyFriendTable(id);
    }

    /**
     * 获取所有约伴
     * @return
     */
    @GetMapping("/getAllFriendTable")
    public R<List<ComeFriend>> getAllFriendTable() {
        return comeFriendService.getAllFriendTable();
    }

    /**
     * 获取我的约伴
     * @return
     */
    @GetMapping("/getMyFriendTable")
    public R<List<ComeFriend>> getMyFriendTable() {
        return comeFriendService.getMyFriendTable();
    }

    /**
     * 通过id查找约伴
     * @param id 约伴id
     * @return
     */
    @GetMapping("/getFriendTableById/{id}")
    public R<ComeFriend> getFriendTableById(@PathVariable("id") Integer id) {
        return comeFriendService.getFriendTableById(id);
    }

    /**
     * 根据条件找约伴
     * @param comeFriendDto
     * @return
     */
    @GetMapping("/getFriendTableByCondition")
    public R<List<ComeFriend>> getFriendTableByCondition(@RequestBody ComeFriendDto comeFriendDto) {
        return comeFriendService.getFriendTableByCondition(comeFriendDto);
    }
}
